iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
Python

30天學Python系列 第 26

Python的異常處理

  • 分享至 

  • xImage
  •  

Python 的異常處理主要用來處理程式運行過程中可能發生的錯誤,這樣程式不會因為錯誤而崩潰。異常處理的關鍵是使用 try-except 語句來捕捉和處理這些錯誤。

異常處理

1. 基本結構

try:
    # 可能會發生錯誤的程式碼
    result = 10 / 0
except ZeroDivisionError:
    # 發生除以零錯誤時執行的程式碼
    print("不能除以 0!")
  • try:在 try 區塊中寫可能會出現錯誤的程式碼。
  • except:如果發生指定的錯誤類型,執行這段代碼。上面例子處理了除以零的情況。
  • ZeroDivisionError 是 Python 提供的內建異常,表示除數為零。

2. 捕捉多種異常

捕捉多種不同的異常類型。

try:
    num = int(input("輸入一個整數: "))
    result = 10 / num
except ZeroDivisionError:
    print("不能除以 0!")
except ValueError:
    print("請輸入正確的整數!")
  • ZeroDivisionError:處理當輸入數字為 0 時發生的錯誤。
  • ValueError:處理當用戶輸入的不是整數時發生的錯誤。

3. 捕捉所有異常

使用 except 不指定錯誤類型,可以捕捉所有異常,但不推薦這樣使用,因為它會隱藏真正的錯誤。

try:
    result = 10 / int(input("輸入一個數字: "))
except:
    print("發生了一個錯誤!")
  • 這樣的 except 將捕捉所有錯誤,但不會具體說明錯誤的類型。

4. finally 區塊

finally 區塊無論是否發生異常都會執行,通常用來處理資源的釋放工作,例如關閉檔案。

try:
    file = open('example.txt', 'r')
    content = file.read()
except FileNotFoundError:
    print("檔案未找到!")
finally:
    file.close()
    print("檔案已關閉")
  • finally 總是會執行,確保即使發生錯誤,也能執行重要的操作,比如關閉檔案。

5. else 區塊

else 區塊在沒有異常發生時才會執行。

try:
    result = 10 / 2
except ZeroDivisionError:
    print("不能除以 0!")
else:
    print(f"結果是 {result}")
  • else 只在沒有異常發生時才執行,這樣可以將異常處理和正常情況分開。

上一篇
Python的檔案處理
下一篇
Python的numpy
系列文
30天學Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言